/*
 * CatGralFachada.java
 * Intuition Technologies. Todos los derechos reservados.
 */
package mx.com.asteca.fachada;

import java.util.List;

import mx.com.asteca.comun.dto.AlumnoDTO;
import mx.com.asteca.comun.dto.CertificadoDTO;
import mx.com.asteca.comun.dto.EstatusDTO;

/**
 * Interfaz de acceso para la fachada de negocio de Certificados
 * 
 * @author Jorge Amaro Coria
 * @version 1.0
 * @since 1.0
 * 
 */
public interface CertificadoFachada extends
		BaseFachada<CertificadoDTO, Integer> {

	/**
	 * Obtiene la lista de Alumnos
	 * 
	 * @return
	 * @throws FachadaException
	 */
	List<AlumnoDTO> getAlumnos() throws FachadaException;

	/**
	 * Obtiene la lista de Estatus
	 * 
	 * @return
	 * @throws FachadaException
	 */
	List<EstatusDTO> getEstatus() throws FachadaException;

	/**
	 * Cancela el certificado que se envia como parametro
	 * 
	 * @param dto
	 * @throws FachadaException
	 */
	void cancelarCertificado(CertificadoDTO dto) throws FachadaException;

	/**
	 * Cancela la accion previa de cancelar certificado
	 * 
	 * @param dto
	 * @throws FachadaException
	 */
	void cancelarAccionCertificado(CertificadoDTO dto) throws FachadaException;

	/**
	 * Obtiene la lista de Certificados filtrado por el nombre del certificado,
	 * el id del alumno y el id de estatus
	 * 
	 * @param certificadoStr
	 * @param idAlumno
	 * @param idEstatus
	 * @return
	 * @throws FachadaException
	 */
	List<CertificadoDTO> buscarFiltrado(String certificadoStr,
			Integer idAlumno, Short idEstatus) throws FachadaException;

}
